package com.wmh.baseservice.admin.service;

import com.wmh.baseservice.admin.entity.AdInfo;
import com.wmh.baseservice.admin.pojo.vo.user.*;
import com.wmh.baseservice.common.mybatisplus.methods.CommonService;
import org.apache.shiro.authz.SimpleAuthorizationInfo;

/**
 * @author mmx generator
 * @since 2021-02-03
 */
public interface AdInfoService extends CommonService<AdInfo> {

    String authority(String account, String password);



    /**
     * 创建新的账号
     * @param reqVO 请求对象
     */
    void create(CreateAdminReqVO reqVO);

    /**
     * 删除管理员
     * @param adId 管理员编号
     */
    void delete(Long adId);

    /**
     * 修改账号内容
     * @param reqVo 请求对象
     */
    void update(UpdateAdminReqVo reqVo);

    /**
     * 修改账号状态
     * @param adId 管理员编号
     * @param status 状态
     */
    void updateStatus(Long adId, Integer status);

    /**
     * 重置密码
     * @param reqVO 请求体
     */
    void resetPassword(ResetPwdReqVO reqVO);

    /**
     * 给予角色
     * @param reqVO 请求体
     */
    void giveRole(GiveRoleReqVO reqVO);

    /**
     * 获取用户简单授权信息
     * @param adId 用户ID
     * @return shiro 用的授权信息
     * */
    SimpleAuthorizationInfo getSimpleAuthorizationInfo(Long adId);


    /**
     * 获取管理员信息
     * @param adId 管理员主键
     * @return 管理员信息
     */
    AdInfo getAdInfo(Long adId);

    /**
     * 获取一些基础用户信息
     * @param adId 管理员主键
     * @return 响应对象
     */
    AdminSimpleInfoRespVO getSimpleInfo(Long adId);
    
}
